package com.shire.shire_interface.model.friend;

import com.shire.shire_interface.model.BasePageExample;

import java.util.ArrayList;
import java.util.List;

public class WxVipUserInfoExample extends BasePageExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public WxVipUserInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andBirthIsNull() {
            addCriterion("birth is null");
            return (Criteria) this;
        }

        public Criteria andBirthIsNotNull() {
            addCriterion("birth is not null");
            return (Criteria) this;
        }

        public Criteria andBirthEqualTo(String value) {
            addCriterion("birth =", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthNotEqualTo(String value) {
            addCriterion("birth <>", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthGreaterThan(String value) {
            addCriterion("birth >", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthGreaterThanOrEqualTo(String value) {
            addCriterion("birth >=", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthLessThan(String value) {
            addCriterion("birth <", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthLessThanOrEqualTo(String value) {
            addCriterion("birth <=", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthLike(String value) {
            addCriterion("birth like", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthNotLike(String value) {
            addCriterion("birth not like", value, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthIn(List<String> values) {
            addCriterion("birth in", values, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthNotIn(List<String> values) {
            addCriterion("birth not in", values, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthBetween(String value1, String value2) {
            addCriterion("birth between", value1, value2, "birth");
            return (Criteria) this;
        }

        public Criteria andBirthNotBetween(String value1, String value2) {
            addCriterion("birth not between", value1, value2, "birth");
            return (Criteria) this;
        }

        public Criteria andWxIdIsNull() {
            addCriterion("wx_id is null");
            return (Criteria) this;
        }

        public Criteria andWxIdIsNotNull() {
            addCriterion("wx_id is not null");
            return (Criteria) this;
        }

        public Criteria andWxIdEqualTo(String value) {
            addCriterion("wx_id =", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdNotEqualTo(String value) {
            addCriterion("wx_id <>", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdGreaterThan(String value) {
            addCriterion("wx_id >", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdGreaterThanOrEqualTo(String value) {
            addCriterion("wx_id >=", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdLessThan(String value) {
            addCriterion("wx_id <", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdLessThanOrEqualTo(String value) {
            addCriterion("wx_id <=", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdLike(String value) {
            addCriterion("wx_id like", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdNotLike(String value) {
            addCriterion("wx_id not like", value, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdIn(List<String> values) {
            addCriterion("wx_id in", values, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdNotIn(List<String> values) {
            addCriterion("wx_id not in", values, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdBetween(String value1, String value2) {
            addCriterion("wx_id between", value1, value2, "wxId");
            return (Criteria) this;
        }

        public Criteria andWxIdNotBetween(String value1, String value2) {
            addCriterion("wx_id not between", value1, value2, "wxId");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andVipProdNameIsNull() {
            addCriterion("vip_prod_name is null");
            return (Criteria) this;
        }

        public Criteria andVipProdNameIsNotNull() {
            addCriterion("vip_prod_name is not null");
            return (Criteria) this;
        }

        public Criteria andVipProdNameEqualTo(String value) {
            addCriterion("vip_prod_name =", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameNotEqualTo(String value) {
            addCriterion("vip_prod_name <>", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameGreaterThan(String value) {
            addCriterion("vip_prod_name >", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameGreaterThanOrEqualTo(String value) {
            addCriterion("vip_prod_name >=", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameLessThan(String value) {
            addCriterion("vip_prod_name <", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameLessThanOrEqualTo(String value) {
            addCriterion("vip_prod_name <=", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameLike(String value) {
            addCriterion("vip_prod_name like", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameNotLike(String value) {
            addCriterion("vip_prod_name not like", value, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameIn(List<String> values) {
            addCriterion("vip_prod_name in", values, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameNotIn(List<String> values) {
            addCriterion("vip_prod_name not in", values, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameBetween(String value1, String value2) {
            addCriterion("vip_prod_name between", value1, value2, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipProdNameNotBetween(String value1, String value2) {
            addCriterion("vip_prod_name not between", value1, value2, "vipProdName");
            return (Criteria) this;
        }

        public Criteria andVipEndDateIsNull() {
            addCriterion("vip_end_date is null");
            return (Criteria) this;
        }

        public Criteria andVipEndDateIsNotNull() {
            addCriterion("vip_end_date is not null");
            return (Criteria) this;
        }

        public Criteria andVipEndDateEqualTo(String value) {
            addCriterion("vip_end_date =", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateNotEqualTo(String value) {
            addCriterion("vip_end_date <>", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateGreaterThan(String value) {
            addCriterion("vip_end_date >", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateGreaterThanOrEqualTo(String value) {
            addCriterion("vip_end_date >=", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateLessThan(String value) {
            addCriterion("vip_end_date <", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateLessThanOrEqualTo(String value) {
            addCriterion("vip_end_date <=", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateLike(String value) {
            addCriterion("vip_end_date like", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateNotLike(String value) {
            addCriterion("vip_end_date not like", value, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateIn(List<String> values) {
            addCriterion("vip_end_date in", values, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateNotIn(List<String> values) {
            addCriterion("vip_end_date not in", values, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateBetween(String value1, String value2) {
            addCriterion("vip_end_date between", value1, value2, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andVipEndDateNotBetween(String value1, String value2) {
            addCriterion("vip_end_date not between", value1, value2, "vipEndDate");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeIsNull() {
            addCriterion("last_buy_time is null");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeIsNotNull() {
            addCriterion("last_buy_time is not null");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeEqualTo(String value) {
            addCriterion("last_buy_time =", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeNotEqualTo(String value) {
            addCriterion("last_buy_time <>", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeGreaterThan(String value) {
            addCriterion("last_buy_time >", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeGreaterThanOrEqualTo(String value) {
            addCriterion("last_buy_time >=", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeLessThan(String value) {
            addCriterion("last_buy_time <", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeLessThanOrEqualTo(String value) {
            addCriterion("last_buy_time <=", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeLike(String value) {
            addCriterion("last_buy_time like", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeNotLike(String value) {
            addCriterion("last_buy_time not like", value, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeIn(List<String> values) {
            addCriterion("last_buy_time in", values, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeNotIn(List<String> values) {
            addCriterion("last_buy_time not in", values, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeBetween(String value1, String value2) {
            addCriterion("last_buy_time between", value1, value2, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andLastBuyTimeNotBetween(String value1, String value2) {
            addCriterion("last_buy_time not between", value1, value2, "lastBuyTime");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountIsNull() {
            addCriterion("vip_buy_amount is null");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountIsNotNull() {
            addCriterion("vip_buy_amount is not null");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountEqualTo(Float value) {
            addCriterion("vip_buy_amount =", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountNotEqualTo(Float value) {
            addCriterion("vip_buy_amount <>", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountGreaterThan(Float value) {
            addCriterion("vip_buy_amount >", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountGreaterThanOrEqualTo(Float value) {
            addCriterion("vip_buy_amount >=", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountLessThan(Float value) {
            addCriterion("vip_buy_amount <", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountLessThanOrEqualTo(Float value) {
            addCriterion("vip_buy_amount <=", value, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountIn(List<Float> values) {
            addCriterion("vip_buy_amount in", values, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountNotIn(List<Float> values) {
            addCriterion("vip_buy_amount not in", values, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountBetween(Float value1, Float value2) {
            addCriterion("vip_buy_amount between", value1, value2, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVipBuyAmountNotBetween(Float value1, Float value2) {
            addCriterion("vip_buy_amount not between", value1, value2, "vipBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountIsNull() {
            addCriterion("vcoin_buy_amount is null");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountIsNotNull() {
            addCriterion("vcoin_buy_amount is not null");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountEqualTo(Float value) {
            addCriterion("vcoin_buy_amount =", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountNotEqualTo(Float value) {
            addCriterion("vcoin_buy_amount <>", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountGreaterThan(Float value) {
            addCriterion("vcoin_buy_amount >", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountGreaterThanOrEqualTo(Float value) {
            addCriterion("vcoin_buy_amount >=", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountLessThan(Float value) {
            addCriterion("vcoin_buy_amount <", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountLessThanOrEqualTo(Float value) {
            addCriterion("vcoin_buy_amount <=", value, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountIn(List<Float> values) {
            addCriterion("vcoin_buy_amount in", values, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountNotIn(List<Float> values) {
            addCriterion("vcoin_buy_amount not in", values, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountBetween(Float value1, Float value2) {
            addCriterion("vcoin_buy_amount between", value1, value2, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andVcoinBuyAmountNotBetween(Float value1, Float value2) {
            addCriterion("vcoin_buy_amount not between", value1, value2, "vcoinBuyAmount");
            return (Criteria) this;
        }

        public Criteria andPayNum30IsNull() {
            addCriterion("pay_num_30 is null");
            return (Criteria) this;
        }

        public Criteria andPayNum30IsNotNull() {
            addCriterion("pay_num_30 is not null");
            return (Criteria) this;
        }

        public Criteria andPayNum30EqualTo(String value) {
            addCriterion("pay_num_30 =", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30NotEqualTo(String value) {
            addCriterion("pay_num_30 <>", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30GreaterThan(String value) {
            addCriterion("pay_num_30 >", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30GreaterThanOrEqualTo(String value) {
            addCriterion("pay_num_30 >=", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30LessThan(String value) {
            addCriterion("pay_num_30 <", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30LessThanOrEqualTo(String value) {
            addCriterion("pay_num_30 <=", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30Like(String value) {
            addCriterion("pay_num_30 like", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30NotLike(String value) {
            addCriterion("pay_num_30 not like", value, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30In(List<String> values) {
            addCriterion("pay_num_30 in", values, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30NotIn(List<String> values) {
            addCriterion("pay_num_30 not in", values, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30Between(String value1, String value2) {
            addCriterion("pay_num_30 between", value1, value2, "payNum30");
            return (Criteria) this;
        }

        public Criteria andPayNum30NotBetween(String value1, String value2) {
            addCriterion("pay_num_30 not between", value1, value2, "payNum30");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}